It is often desirable to deliver a notification to a computer system user that is currently involved in a real-time communication session. However, in existing systems, it may be difficult to determine whether the remote user will be able to receive the notification at the time it is generated. This problem arises in part due to the fact that existing systems may not operate to effectively determine whether the communication channel to the remote user has a current state that would make it unlikely that the notification would be effectively delivered. As a result, a time critical notification, and/or a notification relating to the current real-time communication session, may be sent even though the current state of the communication channel over which the notification is transferred makes it unlikely that the notification will be effectively received.
Various specific aspects of the state of a user's client system may prevent a notification from being received. For example, in the case of an audible notification, such as a sound or portion of speech, delivery may be prevented because the audio output for the recipient user's client device or system is currently in a “muted” state. The muted state may be the result of the user having set the audio output level on their client device to an inaudible level (e.g. “0”), for example by manipulating a graphical control in their system's user interface (e.g. lowering a virtual slider, clicking on or otherwise selecting a “mute” checkbox or the like, etc.), by manipulating a mechanical button or switch on their device (e.g. a “mute” button or the like), or using some other specific technique. If a critical audible notification is generated for a user when the audio output of their client device is muted, the notification may be “played” by the user's client device, but no sound is actually generated, and the notification is accordingly not delivered.
In the case of a visual notification, such as a change made within the user's graphical user interface, delivery may be prevented because the application window containing the visual notification is not currently visible. The application window of the visual notification may not currently be visible because it is obscured by another application window. If a critical visual notification is generated for a user when another graphical object is located over the location of notification within the user interface, the visual notification is not visible, and the notification is accordingly not delivered.
The delivery of various specific types of critical audible or visible notifications may be prevented by the current state of the communication channel. An example of an important audio notification in this regard is a recording notification informing a user that a phone call they are participating in is currently being recorded. Such notifications may be legally required in various jurisdictions (e.g. countries, individual states in the United States, etc.) having laws requiring that participants in telephone calls be alerted to the fact that a recording of the call is being made. The specific alert requirements vary across jurisdictions, and may include requiring a verbal notification that the communication is being recorded, playing of a periodic beep tone, and/or other requirements. Examples of important visual notifications in this regard include notifications relating to the real-time communication session itself, such as visual notifications indicating that a participant wishes to make a comment or ask a question in the session.
It would accordingly be desirable to have a new automated solution that can more reliably provide critical notifications to participants in a real-time communication session.